МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра ЗІ
З В І Т
До лабораторної роботи №3
з курсу: „ Системи запису і відтворення інформації”
на тему:
„ ДОСЛІДЖЕННЯ МЕТОДІВ ОБРОБКИ
ЗОБРАЖЕНЬ В MATLAB ”
Варіант - 4
Львів-2015
1. Мета роботи
Ознайомитися з основними можливостями обробки зображень
реалізованими в середовищі MatLab.
2. Завдання
1. Ознайомитись з теоретичним матеріалом.
2. Завантажити файл вказаний в завданні відповідно до свого варіанту.
3. Вивести основну інформацію про графічний файл.
4. Накласти на зображення шуми gaussian, salt & pepper, speckle.
5. Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, ‘sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
6. Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру.
7. Написати програму збереження відфільтрованого зображення у bmp-файлі.
8. Переконатися у працездатності програми.
3. Лістинг програми
clc;
I=imread('E:\belmont1.tiff');
subplot(2,2,1);
imshow(I); title('Original Image');
h=imshow('E:\belmont1.tiff');
info = imfinfo('E:\belmont1.tiff');
G=imnoise(I,'gaussian');
subplot(2,2,2);
imshow(G); title('Gaussian Noise');
SP=imnoise(I,'salt & pepper');
subplot(2,2,3);
imshow(SP); title('Salt & Pepper Noise');
S=imnoise(I,'speckle');
subplot(2,2,4);
imshow(S); title('Speckle Noise');
h=fspecial('gaussian');
FG=imfilter(G,h);
figure('Name','Filers for Gaussian Noise');
subplot(2,3,1);
imshow(FG); title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(G,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(G,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(G,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(G,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
h=fspecial('gaussian');
FG=imfilter(SP,h);
figure('Name','Filers for Salt & Pepper Noice');
subplot(2,3,1);
imshow(FG);title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(SP,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(SP,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(SP,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(SP,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
h=fspecial('gaussian');
FG=imfilter(S,h);
figure('Name','Filers for Speckle Noise');
subplot(2,3,1);
imshow(FG);title('Gaussian Filter');
s=fspecial('sobel');
FA=imfilter(S,s);
subplot(2,3,2);
imshow(FA), title('Sobel Filter');
u=fspecial('unsharp');
FA=imfilter(S,u);
subplot(2,3,3);
imshow(FA), title('Unsharp Filter');
p=fspecial('prewitt');
FA=imfilter(S,p);
subplot(2,3,4);
imshow(FA), title('Prewitt Filter');
a=fspecial('average');
FA=imfilter(S,a);
subplot(2,3,5);
imshow(FA), title('Average Filter');
K=medfilt2(G);
figure('Name','Median Filers');
subplot(2,2,1)
imshow(K);title('Median filter for Gaussian Noise ');
K=medfilt2(SP);
subplot(2,2,2)
imshow(K);title('Median filter for Salt & Pepper Noise ');
K=medfilt2(SP);
subplot(2,2,3)
imshow(K);title('Median filter for Speckle Noise ');
[m,n]=size(K);
H_I=m;
W_I=n;
W_Real=W_I+(W_I-fix(W_I/4)*4);
File_Size=54+W_Real*H_I+256*4;
Image_Size=W_Real*H_I;
Offset=54+256*4;
d=fopen('E:\myphoto.bmp','wb');
fwrite(d,'B','uchar');
fwrite(d,'M','uchar');
fwrite(d,File_Size,'int32');
fwrite(d,0, 'int16');
fwrite(d,0, 'int16');
fwrite(d,Offset,'int32');
fwrite(d,40,'int32');
fwrite(d,W_I,'int32');
fwrite(d,H_I,'int32');
fwrite(d,1,'int16');
fwrite(d,8,'int16');
fwrite(d,0,'int32');
fwrite(d,Image_Size,'int32');
fwrite(d,0,'int32');
fwrite(d,0,'int32');
fwrite(d,256,'int32');
fwrite(d,256,'int32');
for ii=0:255
Temp=[ii ii ii 255];
fwrite(d,Temp,'uchar');
end;
Temp=zeros(1,W_Real);
for ii=H_I:-1:1
Temp(1:W_I)=I(ii,1:W_I);
fwrite(d,Temp,'uchar');
end;
fcl...